
main:     file format elf64-x86-64


Disassembly of section .init:

0000000000400598 <_init>:
  400598:	48 83 ec 08          	sub    $0x8,%rsp
  40059c:	48 8b 05 55 0a 20 00 	mov    0x200a55(%rip),%rax        # 600ff8 <__gmon_start__>
  4005a3:	48 85 c0             	test   %rax,%rax
  4005a6:	74 05                	je     4005ad <_init+0x15>
  4005a8:	e8 73 00 00 00       	callq  400620 <__gmon_start__@plt>
  4005ad:	48 83 c4 08          	add    $0x8,%rsp
  4005b1:	c3                   	retq   

Disassembly of section .plt:

00000000004005c0 <.plt>:
  4005c0:	ff 35 42 0a 20 00    	pushq  0x200a42(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  4005c6:	ff 25 44 0a 20 00    	jmpq   *0x200a44(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  4005cc:	0f 1f 40 00          	nopl   0x0(%rax)

00000000004005d0 <my_strlen@plt>:
  4005d0:	ff 25 42 0a 20 00    	jmpq   *0x200a42(%rip)        # 601018 <my_strlen>
  4005d6:	68 00 00 00 00       	pushq  $0x0
  4005db:	e9 e0 ff ff ff       	jmpq   4005c0 <.plt>

00000000004005e0 <mfopen@plt>:
  4005e0:	ff 25 3a 0a 20 00    	jmpq   *0x200a3a(%rip)        # 601020 <mfopen>
  4005e6:	68 01 00 00 00       	pushq  $0x1
  4005eb:	e9 d0 ff ff ff       	jmpq   4005c0 <.plt>

00000000004005f0 <mfwrite@plt>:
  4005f0:	ff 25 32 0a 20 00    	jmpq   *0x200a32(%rip)        # 601028 <mfwrite>
  4005f6:	68 02 00 00 00       	pushq  $0x2
  4005fb:	e9 c0 ff ff ff       	jmpq   4005c0 <.plt>

0000000000400600 <printf@plt>:
  400600:	ff 25 2a 0a 20 00    	jmpq   *0x200a2a(%rip)        # 601030 <printf@GLIBC_2.2.5>
  400606:	68 03 00 00 00       	pushq  $0x3
  40060b:	e9 b0 ff ff ff       	jmpq   4005c0 <.plt>

0000000000400610 <__libc_start_main@plt>:
  400610:	ff 25 22 0a 20 00    	jmpq   *0x200a22(%rip)        # 601038 <__libc_start_main@GLIBC_2.2.5>
  400616:	68 04 00 00 00       	pushq  $0x4
  40061b:	e9 a0 ff ff ff       	jmpq   4005c0 <.plt>

0000000000400620 <__gmon_start__@plt>:
  400620:	ff 25 1a 0a 20 00    	jmpq   *0x200a1a(%rip)        # 601040 <__gmon_start__>
  400626:	68 05 00 00 00       	pushq  $0x5
  40062b:	e9 90 ff ff ff       	jmpq   4005c0 <.plt>

0000000000400630 <mfclose@plt>:
  400630:	ff 25 12 0a 20 00    	jmpq   *0x200a12(%rip)        # 601048 <mfclose>
  400636:	68 06 00 00 00       	pushq  $0x6
  40063b:	e9 80 ff ff ff       	jmpq   4005c0 <.plt>

Disassembly of section .text:

0000000000400640 <_start>:
  400640:	31 ed                	xor    %ebp,%ebp
  400642:	49 89 d1             	mov    %rdx,%r9
  400645:	5e                   	pop    %rsi
  400646:	48 89 e2             	mov    %rsp,%rdx
  400649:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40064d:	50                   	push   %rax
  40064e:	54                   	push   %rsp
  40064f:	49 c7 c0 30 08 40 00 	mov    $0x400830,%r8
  400656:	48 c7 c1 c0 07 40 00 	mov    $0x4007c0,%rcx
  40065d:	48 c7 c7 2d 07 40 00 	mov    $0x40072d,%rdi
  400664:	e8 a7 ff ff ff       	callq  400610 <__libc_start_main@plt>
  400669:	f4                   	hlt    
  40066a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400670 <deregister_tm_clones>:
  400670:	b8 5f 10 60 00       	mov    $0x60105f,%eax
  400675:	55                   	push   %rbp
  400676:	48 2d 58 10 60 00    	sub    $0x601058,%rax
  40067c:	48 83 f8 0e          	cmp    $0xe,%rax
  400680:	48 89 e5             	mov    %rsp,%rbp
  400683:	77 02                	ja     400687 <deregister_tm_clones+0x17>
  400685:	5d                   	pop    %rbp
  400686:	c3                   	retq   
  400687:	b8 00 00 00 00       	mov    $0x0,%eax
  40068c:	48 85 c0             	test   %rax,%rax
  40068f:	74 f4                	je     400685 <deregister_tm_clones+0x15>
  400691:	5d                   	pop    %rbp
  400692:	bf 58 10 60 00       	mov    $0x601058,%edi
  400697:	ff e0                	jmpq   *%rax
  400699:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004006a0 <register_tm_clones>:
  4006a0:	b8 58 10 60 00       	mov    $0x601058,%eax
  4006a5:	55                   	push   %rbp
  4006a6:	48 2d 58 10 60 00    	sub    $0x601058,%rax
  4006ac:	48 c1 f8 03          	sar    $0x3,%rax
  4006b0:	48 89 e5             	mov    %rsp,%rbp
  4006b3:	48 89 c2             	mov    %rax,%rdx
  4006b6:	48 c1 ea 3f          	shr    $0x3f,%rdx
  4006ba:	48 01 d0             	add    %rdx,%rax
  4006bd:	48 d1 f8             	sar    %rax
  4006c0:	75 02                	jne    4006c4 <register_tm_clones+0x24>
  4006c2:	5d                   	pop    %rbp
  4006c3:	c3                   	retq   
  4006c4:	ba 00 00 00 00       	mov    $0x0,%edx
  4006c9:	48 85 d2             	test   %rdx,%rdx
  4006cc:	74 f4                	je     4006c2 <register_tm_clones+0x22>
  4006ce:	5d                   	pop    %rbp
  4006cf:	48 89 c6             	mov    %rax,%rsi
  4006d2:	bf 58 10 60 00       	mov    $0x601058,%edi
  4006d7:	ff e2                	jmpq   *%rdx
  4006d9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000004006e0 <__do_global_dtors_aux>:
  4006e0:	80 3d 6d 09 20 00 00 	cmpb   $0x0,0x20096d(%rip)        # 601054 <_edata>
  4006e7:	75 11                	jne    4006fa <__do_global_dtors_aux+0x1a>
  4006e9:	55                   	push   %rbp
  4006ea:	48 89 e5             	mov    %rsp,%rbp
  4006ed:	e8 7e ff ff ff       	callq  400670 <deregister_tm_clones>
  4006f2:	5d                   	pop    %rbp
  4006f3:	c6 05 5a 09 20 00 01 	movb   $0x1,0x20095a(%rip)        # 601054 <_edata>
  4006fa:	f3 c3                	repz retq 
  4006fc:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400700 <frame_dummy>:
  400700:	48 83 3d 08 07 20 00 	cmpq   $0x0,0x200708(%rip)        # 600e10 <__JCR_END__>
  400707:	00 
  400708:	74 1e                	je     400728 <frame_dummy+0x28>
  40070a:	b8 00 00 00 00       	mov    $0x0,%eax
  40070f:	48 85 c0             	test   %rax,%rax
  400712:	74 14                	je     400728 <frame_dummy+0x28>
  400714:	55                   	push   %rbp
  400715:	bf 10 0e 60 00       	mov    $0x600e10,%edi
  40071a:	48 89 e5             	mov    %rsp,%rbp
  40071d:	ff d0                	callq  *%rax
  40071f:	5d                   	pop    %rbp
  400720:	e9 7b ff ff ff       	jmpq   4006a0 <register_tm_clones>
  400725:	0f 1f 00             	nopl   (%rax)
  400728:	e9 73 ff ff ff       	jmpq   4006a0 <register_tm_clones>

000000000040072d <main>:
  40072d:	55                   	push   %rbp
  40072e:	48 89 e5             	mov    %rsp,%rbp
  400731:	48 83 ec 10          	sub    $0x10,%rsp
  400735:	48 c7 45 f8 50 08 40 	movq   $0x400850,-0x8(%rbp)
  40073c:	00 
  40073d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400741:	48 89 c7             	mov    %rax,%rdi
  400744:	e8 87 fe ff ff       	callq  4005d0 <my_strlen@plt>
  400749:	89 c2                	mov    %eax,%edx
  40074b:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  40074f:	48 89 c6             	mov    %rax,%rsi
  400752:	bf 58 08 40 00       	mov    $0x400858,%edi
  400757:	b8 00 00 00 00       	mov    $0x0,%eax
  40075c:	e8 9f fe ff ff       	callq  400600 <printf@plt>
  400761:	be 61 08 40 00       	mov    $0x400861,%esi
  400766:	bf 63 08 40 00       	mov    $0x400863,%edi
  40076b:	e8 70 fe ff ff       	callq  4005e0 <mfopen@plt>
  400770:	48 89 45 f0          	mov    %rax,-0x10(%rbp)
  400774:	48 83 7d f0 00       	cmpq   $0x0,-0x10(%rbp)
  400779:	75 07                	jne    400782 <main+0x55>
  40077b:	b8 01 00 00 00       	mov    $0x1,%eax
  400780:	eb 31                	jmp    4007b3 <main+0x86>
  400782:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400786:	48 89 c7             	mov    %rax,%rdi
  400789:	e8 42 fe ff ff       	callq  4005d0 <my_strlen@plt>
  40078e:	89 c1                	mov    %eax,%ecx
  400790:	48 8b 55 f0          	mov    -0x10(%rbp),%rdx
  400794:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400798:	89 ce                	mov    %ecx,%esi
  40079a:	48 89 c7             	mov    %rax,%rdi
  40079d:	e8 4e fe ff ff       	callq  4005f0 <mfwrite@plt>
  4007a2:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
  4007a6:	48 89 c7             	mov    %rax,%rdi
  4007a9:	e8 82 fe ff ff       	callq  400630 <mfclose@plt>
  4007ae:	b8 00 00 00 00       	mov    $0x0,%eax
  4007b3:	c9                   	leaveq 
  4007b4:	c3                   	retq   
  4007b5:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  4007bc:	00 00 00 
  4007bf:	90                   	nop

00000000004007c0 <__libc_csu_init>:
  4007c0:	41 57                	push   %r15
  4007c2:	41 89 ff             	mov    %edi,%r15d
  4007c5:	41 56                	push   %r14
  4007c7:	49 89 f6             	mov    %rsi,%r14
  4007ca:	41 55                	push   %r13
  4007cc:	49 89 d5             	mov    %rdx,%r13
  4007cf:	41 54                	push   %r12
  4007d1:	4c 8d 25 28 06 20 00 	lea    0x200628(%rip),%r12        # 600e00 <__frame_dummy_init_array_entry>
  4007d8:	55                   	push   %rbp
  4007d9:	48 8d 2d 28 06 20 00 	lea    0x200628(%rip),%rbp        # 600e08 <__init_array_end>
  4007e0:	53                   	push   %rbx
  4007e1:	4c 29 e5             	sub    %r12,%rbp
  4007e4:	31 db                	xor    %ebx,%ebx
  4007e6:	48 c1 fd 03          	sar    $0x3,%rbp
  4007ea:	48 83 ec 08          	sub    $0x8,%rsp
  4007ee:	e8 a5 fd ff ff       	callq  400598 <_init>
  4007f3:	48 85 ed             	test   %rbp,%rbp
  4007f6:	74 1e                	je     400816 <__libc_csu_init+0x56>
  4007f8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  4007ff:	00 
  400800:	4c 89 ea             	mov    %r13,%rdx
  400803:	4c 89 f6             	mov    %r14,%rsi
  400806:	44 89 ff             	mov    %r15d,%edi
  400809:	41 ff 14 dc          	callq  *(%r12,%rbx,8)
  40080d:	48 83 c3 01          	add    $0x1,%rbx
  400811:	48 39 eb             	cmp    %rbp,%rbx
  400814:	75 ea                	jne    400800 <__libc_csu_init+0x40>
  400816:	48 83 c4 08          	add    $0x8,%rsp
  40081a:	5b                   	pop    %rbx
  40081b:	5d                   	pop    %rbp
  40081c:	41 5c                	pop    %r12
  40081e:	41 5d                	pop    %r13
  400820:	41 5e                	pop    %r14
  400822:	41 5f                	pop    %r15
  400824:	c3                   	retq   
  400825:	90                   	nop
  400826:	66 2e 0f 1f 84 00 00 	nopw   %cs:0x0(%rax,%rax,1)
  40082d:	00 00 00 

0000000000400830 <__libc_csu_fini>:
  400830:	f3 c3                	repz retq 

Disassembly of section .fini:

0000000000400834 <_fini>:
  400834:	48 83 ec 08          	sub    $0x8,%rsp
  400838:	48 83 c4 08          	add    $0x8,%rsp
  40083c:	c3                   	retq   
